import { CommonIdType } from "./id-or-enum.model";

/**
 * 音乐信息，来源有二：网易云音乐榜单或网易云音乐的专辑
 */
export interface MusicInfo {
  /**
   * 音乐id（网易云音乐）
   */
  id: number | string;
  /**
   * 歌曲名称
   */
  name: string;
  /**
   * 艺术家/歌手
   */
  ar?: Artist[];
  /**
   * 同ar，歌手列表，一般不存在，保险起见建议使用ar || artists
   */
  artists?: Artist[];
  /**
   * 歌曲url（专辑）
   */
  url?: string;
  /**
   * 同url，歌曲url，一般不存在，保险起见建议使用url || mp3Url
   */
  mp3Url?: string;
  /**
   * 专辑信息，一般包含专辑图片、专辑id等
   */
  al?: Album;
  /**
   * 同al，专辑信息，一般不存在，保险起见建议用al || album
   */
  album?: Album;
  /**
   * 歌曲mv的id
   */
  mvid?: CommonIdType;
  /**
   * 同mvid，建议使用mvid || mv;
   */
  mv?: CommonIdType;
  /**
   * 歌曲图片，可能没有
   */
  imgUrl?: string;
  /**
   * 播放量
   */
  playCount?: number;
  /**
   * 图片，推荐歌单中的歌曲的图片
   */
  picUrl?: string;
}

/**
 * 歌手的专辑信息
 */
export interface Artist {
  /**
   * 歌手id
   */
  id: number | string;
  /**
   * 歌手名称
   */
  name: string;
  /**
   * 别名
   */
  alia?: string[];
  /**
   * 1比1比例的歌手图片
   */
  img1v1Url?: string;
  /**
   * 歌手图片
   */
  picUrl?: string;
  /**
   * 专辑数
   */
  albumSize?: number;
}

/**
 * 专辑
 */
export interface Album {
  /**
   * 专辑id
   */
  id: number | string;
  /**
   * 专辑名称
   */
  name: string;
  /**
   * 专辑图片url
   */
  picUrl: string;
  /**
   * 作用未知
   */
  tns?: any[];
  /**
   * 图片编号，一般url的尾部为图片编号.图片格式
   */
  pic?: number;
  /**
   * 图片编号的字符串形式
   */
  pic_str?: string;
  /**
   * 歌手
   */
  artists?: Artist[];
  /**
   * 附加信息，如评论数
   */
  info?: AlbumInfo;
  /**
   * 发布时间，时间戳
   */
  publishTime: number;
  /**
   * 模糊图片？
   */
  blurPicUrl?: string;
  /**
   * 有多少首歌
   */
  size?: number;
}

export interface AlbumInfo {
  /**
   * 喜欢的人数
   */
  likedCount: number;
  /**
   * 评论数
   */
  commentCount: number;
  /**
   * 分享人数
   */
  shareCount: number;
}

/*
 *   MV信息
 */
export interface MVInfo {
  /*
   *   MV的歌手信息
   */
  artists?: Artist[];
  /*
   *   歌手名称
   */
  artistName: string;
  /*
   *   MV时长，秒数
   */
  duration: number;
  id: CommonIdType;
  /*
   *   图片地址
   */
  imgurl?: string;
  /*
   *   16比9的图片地址
   */
  imgurl16v9?: string;
  /*
   *   封面图片
   */
  cover?: string;
  /*
   *   推荐mv中的图片
   */
  picUrl?: string;
  /*
   *   播放量
   */
  playCount: number;
  /*
   *    mv名字
   */
  name: string;
  /*
   *   发布时间，如2016-08-02
   */
  publishTime?: string;
  /*
   *   状态，作用未知，我猜0就是正常
   */
  status?: number;
  /*
   *   未知变量，也许是是否被当前用户收藏
   */
  subed?: boolean;
  /*
   *   描述
   */
  desc?: string;
}

/*
 *
 *   评论信息
 */
export interface CommentInfo {
  /*
   *   id
   */
  commentId: CommonIdType;
  /*
   *   评论内容
   */
  content: string;
  /*
   *   是否被当前用户点赞
   */
  liked?: boolean;
  /*
   *   点赞数
   */
  likedCount?: number;
  /*
   *   时间戳，应该是发布时间
   */
  time?: number;
  /*
   *   评论的用户信息
   */
  user: UserInfo;
  /*
   *   默认0
   */
  parentCommentId?: CommonIdType;
  /*
   *   作用未知
   */
  expressionUrl?: string;
  beReplied?: any[];
  commentLocationType?: number;
  decoration?: any;
  pendantData?: any;
  repliedMark?: any;
  showFloorComment?: null;
  status?: number;
}

/*
 *
 *   用户信息
 */
export interface UserInfo {
  /*
   *   是否认证，默认0
   */
  authStatus?: number;
  /*
   *   是否匿名，默认0
   */
  anonym?: number;
  /*
   *   头像地址
   */
  avatarUrl?: string;
  /*
   *   昵称
   */
  nickname: string;
  /*
   *   id
   */
  userId?: CommonIdType;
  /*
   *   未知类型
   */
  userType?: number;
  /*
   *   作用未知或类型未知
   */
  avatarDetail?: any;
  experts?: any;
  expertTags?: any;
  liveInfo?: any;
  locationInfo?: any;
  remarkName?: any;
  vipRights?: any;
  vipType?: any;
  /**
   * 性别
   */
  gender?: any;
  /**
   * 签名
   */
  signature?: string;
  /**
   *  可以转为date对象，生日
   */
  birthday?: number | string;
  /**
   * 背景
   */
  backgroundUrl?: string;
}

/*
 *
 *   歌单信息
 */
export interface SongListInfo {
  /*
   *   未知
   */
  alg?: string;
  canDislike?: false;
  /*
   *   作者的话？编辑推荐？
   */
  copywriter?: string;
  /*
   *   高品质？
   */
  highQuality?: boolean;
  /*
   *   id
   */
  id: CommonIdType;
  /*
   *   歌单名称
   */
  name: string;
  /*
   *   歌单封面
   */
  picUrl: string;
  /*
   *   播放量
   */
  playCount: number;
  /*
   *   歌单里的歌曲
   */
  tracks?: MusicInfo[];
  /*
   *   跟踪歌曲数
   */
  trackCount: 60;
  /*
   *   跟踪歌曲更新时间 ，时间戳
   */
  trackNumberUpdateTime?: number;
  /*
   *   未知类型
   */
  type?: number;

  /*
   *   图片id
   */
  coverImgId: CommonIdType;
  /*
   *   图片id，字符串
   */
  coverImgId_str: string;
  /*
   *   图片地址
   */
  coverImgUrl: string;
  /*
   *   创建者
   */
  creator?: UserInfo;
  /**
   * 订阅数
   */
  subscribedCount?: number;
  /**
   * 评论数
   */
  commentCount?: number;
  /**
   * 分享数
   */
  shareCount?: number;
}
